package cn.itcast.web.controller.system;

import cn.itcast.domain.system.Module;
import cn.itcast.domain.system.User;
import cn.itcast.service.system.ModuleService;
import cn.itcast.web.controller.BaseController;
import com.github.pagehelper.PageInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;

import java.util.List;

@Controller
@RequestMapping("/system/module/")
public class ModuleController extends BaseController {

	@Autowired
	private ModuleService moduleService;

	//分页
	@RequestMapping("/list")
	public String list(@RequestParam(defaultValue = "1") int page,
	                   @RequestParam(defaultValue = "5") int size) {
		//1.调用service查询，参数: 当前登录用户的企业id，page，size
		PageInfo info = moduleService.findAll(page,size);
		//2.存入到request域中
		request.setAttribute("page",info);
		//3.跳转页面
		return "system/module/module-list";
	}

	//进入保存
	@RequestMapping("/toAdd")
	public String toAdd() {
		//查询所有的菜单 ：勾选下拉框
		List list = moduleService.findAll();
		request.setAttribute("menus",list);
		//跳转页面
		return "system/module/module-add";
	}

	//进入更新
	@RequestMapping("/toUpdate")
	public String toUpdate(String id) {
		//1.查询所有的菜单（构造下拉框）
		List list = moduleService.findAll();
		request.setAttribute("menus",list);
		//2.根据id查询
		Module module =  moduleService.findById(id);
		request.setAttribute("module",module);
		//3.跳转页面
		return "system/module/module-update";
	}

	//保存或者更新
	@RequestMapping("/edit")
	public String edit(Module module) {
		//1.判断参数中是否具有id
		if(StringUtils.isEmpty(module.getId())) {
			//1.1 如果没有id，保存
			moduleService.save(module);
		}else{
			//1.2 有id，更新
			moduleService.update(module);
		}
		//2.重定向到列表
		return "redirect:/system/module/list.do";
	}

	//删除
	@RequestMapping("/delete")
	public String delete(String id) {
		//1.调用service删除
		moduleService.delete(id);
		//2.重定向到列表
		return "redirect:/system/module/list.do";
	}
}
